<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 日期对象/时间对象    -> 获取和设置页面的时间(年月日 时分秒 毫秒)

    // 如何获取和设置日期对象?   => 构造函数获取Date

    // 获取当前时间 (自1970年1月1日以来的毫秒数(世界时)  北京->东八区(+08:00) => 中国标准时间)
    // var date = new Date();
    // console.log(date);

    // 设置一个日期对象/时间对象
    // (1)  设置一个日期格式的字符串
    // 优点 -> 设置的日期 和 期望的日期是一致的
    // 缺点: 超出有效范围 会显示无效日期

    // var date = new Date("2022-12-12 12:12:12"); // 2022-12-12 12:12:12
    // console.log(date);

    // var date = new Date("2022-12");
    // console.log(date);

    // var date = new Date("2022-12-32 12:12:12"); // 2022-12-12 12:12:12
    // console.log(date); // Invalid Date(无效日期)

    // (2)  多参数设置  分别指定 年月日 时分秒 毫秒
    // 注意:月份参数范围 (0-11)   =>  月份参数 = 期望的月份  - 1;

    // 优点: 超出有效范围会自动换算  (小于最小值  大于最大值)
    // 缺点: 设置参数多,没有第一种方法只=直观  月份参数范围 (0-11) 


    // var date = new Date(2022,10,11,12,12,12); // 2022-11-11 12:12:12
    // console.log(date);

    // 超出日期最大值 -> 向下个月换算
    // var date = new Date(2022,10,31,12,12,12); // 2022-11-31 12:12:12 ->11月只有30天 -> 自动向后换算 2022-12-1  12:12:12
    // console.log(date);

    // // 小于最小值
    // var date = new Date(2022,10,0,12,12,12); // 2022-11-0 12:12:12 ->日期的最小值1 -> 自动换算 2022-10-31  12:12:12
    // console.log(date);

    // (3) 接收一个整数 作为毫秒数   -> 返回对应的日期对象
    // var date = new Date(0);
    // console.log(date);

    // var date = new Date(123456789000);
    // console.log(date);

    // var date = new Date(-123456789000);
    // console.log(date);

    // (4) 接收一个日期对象作为参数  => 得到一个与原日期对象 时间相同的 新日期对象 (日期对象复制 -> 日期对象可以被修改->会影响原日期对象 -> 为了不影响原日期对象 可以创建一个新日期再做修改)

    var d1 = new Date("2022-12-12");
    var d2 = new Date(d1);
    console.log(d1);
    console.log(d2);
    console.log(d1 === d2);







</script>
</html>